
using System;
namespace Ausy.Silverlight.Survey.Infrastructure.Context
{
    /// <summary>
    /// Cette classe permet de gérer un context sur l'instance de l'application
    /// </summary>
    public sealed class ApplicationContext : IApplicationContext
    {
        #region Consts

        /// <summary>
        /// Identifiant du questionnaire par défaut
        /// </summary>
        private const string DEFAULT_QUESTIONNAIRE_IDENTIFIER = "7D9DDC81-FB47-4739-967C-11B30F744D6F"; 

        #endregion

        #region AccountIdentifier Property

        /// <summary>
        /// Identifiant du compte utilisateur
        /// </summary>
        public Guid AccountIdentifier { get; set; }

        #endregion

        #region AccountEmail Property

        /// <summary>
        /// Email du compte utilisateur
        /// </summary>
        public string AccountEmail { get; set; } 

        #endregion

        #region CurrentQuestionnaire Property
        /// <summary>
        /// Property currentQuestionnaire
        /// </summary>
        private Guid currentQuestionnaire;

        /// <summary>
        /// Property CurrentQuestionnaire
        /// </summary>
        public Guid CurrentQuestionnaire
        {
            get { return this.currentQuestionnaire; }
            set { this.currentQuestionnaire = value; }
        }
        #endregion

        #region QuestionnaireResult Property

        /// <summary>
        /// Résultat du questionnaire
        /// </summary>
        public decimal QuestionnaireResult { get; set; }

        #endregion
        
        #region QuestionnaireTimeResult Property

        /// <summary>
        /// Résultat du questionnaire
        /// </summary>
        public TimeSpan QuestionnaireTimeResult { get; set; }

        #endregion
        
        #region Private Constructor

        /// <summary>
        /// Constructeur privé
        /// </summary>
        public ApplicationContext()
        {
            this.CurrentQuestionnaire = Guid.Parse(DEFAULT_QUESTIONNAIRE_IDENTIFIER); // Questionnaire par défaut
            this.QuestionnaireResult = 0;
        }

        #endregion

    }
}
